var extensao = new Extensao();
var isMouseDown = false;
var extensaoHistorico = new Array();
var canvasHistorico = new Array();

$(document).ready(function (e) {


    //Evento que controla o clique do mouse no Canvas
    $('canvas').click(function (e){
        var checkBoxMarcado = $('input[type=radio]:checked').attr("value");
        
            if(checkBoxMarcado == 'marcarPonto' || checkBoxMarcado == 'zoomPonto'){
            var ponto = getCanvasPonto(e);  
            salvarHistorico();
            extensaoHistorico.push(extensaoHistorico[extensaoHistorico.length-1]);
            obterDadosEspaciais(checkBoxMarcado,ponto);
        }
        
    });

    //Evento que controla o clique do mouse precionado no Canvas
    $('canvas').mousedown(function (e){
        if($('input[type=radio]:checked').attr("value") == 'zoomSelecao'){
            isMouseDown = true;
            extensao.min = getCanvasPonto(e);
        }
    });

    //Evento que controla o movimento do mouse no Canvas
    $('canvas').mousemove(function (e){
        if($('input[type=radio]:checked').attr("value") == 'zoomSelecao'){
            if(isMouseDown){
                $('#zoomBox').show();
                $('#zoomBox').css('width','0px');
                $('#zoomBox').css('height','0px');

                var size = getCanvasPonto(e);

                if(extensao.min.x < size.x && extensao.min.y < size.y){
                    $('#zoomBox').css('margin-top',extensao.min.y);
                    $('#zoomBox').css('margin-left',extensao.min.x);     

                    $('#zoomBox').css('width',(size.x-extensao.min.x));
                    $('#zoomBox').css('height',(size.y-extensao.min.y));
                }
            }
        }
    });

    //Evento que controla quando solta o clique
    $('canvas').mouseup(function (e){               
        if($('input[type=radio]:checked').attr("value") == 'zoomSelecao'){  
            salvarHistorico(); 
            isMouseDown = false;
            extensao.max = getCanvasPonto(e);
            obterDadosEspaciais("zoomSelecao",extensao);
            $('#zoomBox').hide();
        }
    });
    
    $('canvas').mouseout(function (e){        
        isMouseDown = false;
        $('#zoomBox').hide();
    })
    

    $('#previous').click(function (e){
        desenharHistorico();
    })

});

function desenharHistorico(){
    
    apagarDados();
    extensaoHistorico.pop();
    
    if(canvasHistorico.length > 0){
        context.putImageData(canvasHistorico[canvasHistorico.length-1], 0, 0);
        canvasHistorico.pop();
    }
}

function salvarHistorico(){
    canvasHistorico.push(context.getImageData(0, 0, 1080, 540));
}

function getCanvasPonto(e){
    
    var canvas = $('#canvas').offset();

    var ponto = new Ponto();
    ponto.x = e.pageX - canvas.left;
    ponto.y = e.pageY - canvas.top;
    
    return ponto;
}

function Extensao(){
    this.max = new Ponto();
    this.min = new Ponto();
}

function Ponto(){
    this.x = null;
    this.y = null;
}